package com.shujia.spark.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo3Filter {

  def main(args: Array[String]): Unit = {

    val conf = new SparkConf()
      .setAppName("fliter")
      .setMaster("local")

    val sc = new SparkContext(conf)

    val listRDD: RDD[Int] = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8))

    println("分区数量:"+listRDD.getNumPartitions)

    /**
      * filter算子，函数返回true保留数据，函数返回false过滤数据
      */


    /**
      * 转换算子：懒执行，需要action算子触发执行
      * 操作算子: 触发任务执行，每一个action算子都会触发一个任务
      */

    println("filter之前")

    val filterRDD: RDD[Int] = listRDD.filter(i => {
      println("filter:"+i)
      i % 2 == 1
    })

    println("filter之后")

    filterRDD.foreach(println)
    filterRDD.foreach(println)

  }

}
